(function( $, undefined ) {
/*
	\name ru Поле выбора даты
	\description ru Выбор даты, с календарём.
	\save true
*/
$.widget("ui.ajajform_dateregion",$.ui.ajajform_widget, {
	options: {
		// \type cssclass
		cssclass: "afw-dateregion",
		// \type text
		value_min: "",
		value_max: "",
		// \type text
		label: "",
		// \type integer
		width: null,
		// \type html
		htmltemplate: '<div class="af-label"></div><div class="af-edit"><input type="text" class="min"/> - <input type="text" class="max"/><div class="af-error"></div></div><div style="clear: both;"></div>',
		// \type function
		validate: null,
		dateFormat: "dd.mm.yy",
		readonly: false
	},
	_create: function() {
		this.element.addClass(this.options.cssclass);
		var t=this.options.htmltemplate;
		this.element.append(t);
		this.refreshLabel();
		this.refreshInput();
		this.refreshReadonly();
	},
	refreshReadonly: function() {
		$("input",this.element).prop('readonly',this.options.readonly);
	},
	refreshInput: function() {
		var t=this;
		var i=$("input",this.element);
		i.addClass("ui-corner-all af-edit");
		i.width(this.options.width);
		$("input.min").val(this.options.value_min);
		$("input.max").val(this.options.value_max);
		i.bind("focus",function(e) { $(this).addClass("ui-state-highlight"); });
		if (!this.options.readonly && !this.options.disabled) {
			i.datepicker({dateFormat: this.options.dateFormat});
		}
		i.bind("blur",this,function(e) {
			$(this).removeClass("ui-state-highlight");
			if (t.options.validate && !t.options.readonly ) {
				e.data.validate();
			}
		});
	},
	refreshError: function(e) {
		$(".af-error",this.element).text(e==null?"":e);
	},
	refreshLabel: function() {
		$(".af-label",this.element).text(this.options.label);
	},
	destroy: function() {
	},
	validate: function() {
/*		var vd=this.options.validate;
		var inp=$("input",this.element);
		if (!vd) return false;
		var r=vd(inp.val());
		if (r) inp.addClass("ui-state-error"); else inp.removeClass("ui-state-error");
		this.refreshError(r);
		return r?true:false;*/
		return false;
	},
	postvalue: function(r) {
		r[this.options.name+"_min"]=$("input.min",this.element).val();
		r[this.options.name+"_max"]=$("input.max",this.element).val();
	}
});

})( jQuery );
